﻿using System;
using System.Collections.ObjectModel;
using System.ComponentModel;
using System.Text;
using System.Xml;
using System.Xml.Serialization;
using Microsoft.Xna.Framework;

namespace Core.Graphics
{
    [Serializable()]
    public abstract class Layer
    {
        /// <summary>Layer Name</summary>
        [XmlAttribute("Name")]
        public virtual string Name { get; set; }

        /// <summary>Width in Pixels</summary>
        [XmlAttribute("Width")]
        public virtual int Width { get; set; }

        /// <summary>Height in Pixels</summary>
        [XmlAttribute("Height")]
        public virtual int Height { get; set; }

        /// <summary>ZIndex of the Layer</summary>
        [XmlAttribute("Z-Index")]
        public virtual int ZIndex { get; set; }

        /// <summary>Is the Layer Visible (Drawn)</summary>
        [XmlAttribute("Visible")]
        public virtual bool Visible { get; set; }

        /// <summary>Is this layer locked in Design Mode</summary>
        [XmlAttribute("IsDesignLocked")]
        public virtual bool IsDesignLocked { get; set; }

        /// <summary>How far this layer is offset from it's parent's coordinate</summary>
        [XmlElement("ZeroOffset")]
        public virtual Point ZeroOffset { get; set; }
    }
}
